import { EChartOption } from 'echarts-ng2/src';

export class RealChartOption {
    constructor (
      public datatype: string
    ) {
    }
    public getTwoChartOption() {
      const twoChartOptionFN = function(data1, data2){
        const option = {
          tooltip: {
            trigger: 'axis',
            position: function (pt) {
                return [pt[0], '10%'];
            }
          },
          dataZoom: [{
              type: 'inside',
              start: 0,
              end: 10
          }, {
              start: 0,
              end: 10,
              // tslint:disable-next-line:max-line-length
              handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
              handleSize: '80%',
              handleStyle: {
                  color: '#fff',
                  shadowBlur: 3,
                  shadowColor: 'rgba(0, 0, 0, 0.6)',
                  shadowOffsetX: 2,
                  shadowOffsetY: 2
              }
          }],
          title: {
            text: '今日电量'
          },
          legend: {
            data: ['正向有功总电能量', '正向无功总电能量']
          },
          xAxis: {
            splitLine: {show: false},
            min: data1[0][0],
            max: data1[data1.length - 1][0],
            type: 'time'
          },
          yAxis: {
            name: 'Kwh'
          },
          series: [
            {
              name: '正向有功总电能量',
              type: 'line',
              symbol: 'none',
              areaStyle: {
                normal: {
                }
              },
              data: data1
            },
            {
              name: '正向无功总电能量',
              type: 'line',
              symbol: 'none',
              areaStyle: {
                normal: {
                }
              },
              data: data2
            },
          ]
        };
        return option;
      }
      return twoChartOptionFN;
    }
    public getOption() {
      switch ( this.datatype ) {
        // 今日负荷
        case 'load':  {
          const optionFN = function(data){
            const option = {
              tooltip: {
                trigger: 'axis',
                position: function (pt) {
                    return [pt[0], '10%'];
                }
              },
              title: {
                text: '今日负荷'
              },
              legend: {
                data: ['今日负荷']
              },
              xAxis: {
                splitLine: {show: false},
                min: data[0][0],
                max: data[data.length - 1][0],
                type: 'time'
              },
              yAxis: {
                name: 'Kw'
              },
              series: [{
                name: '今日负荷',
                type: 'line',
                symbol: 'none',
                areaStyle: {
                  normal: {
                  }
                },
                data: data
              }]
            };
            return option;
          }
          return optionFN;
        }
        // 今日无功
        case 'idle':  {
          const optionFN = function(data){
            const option = {
              tooltip: {
                trigger: 'axis',
                position: function (pt) {
                    return [pt[0], '10%'];
                }
              },
              title: {
                text: '今日无功'
              },
              legend: {
                data: ['今日无功']
              },
              xAxis: {
                splitLine: {show: false},
                min: data[0][0],
                max: data[data.length - 1][0],
                type: 'time'
              },
              yAxis: {
                name: 'Kw'
              },
              series: [{
                name: '今日无功',
                type: 'line',
                symbol: 'none',
                areaStyle: {
                  normal: {
                  }
                },
                data: data
              }]
            };
            return option;
          }
          return optionFN;
        }
        // 今日无功
        case 'idle':  {
          const optionFN = function(data){
            const option = {
              tooltip: {
                trigger: 'axis',
                position: function (pt) {
                    return [pt[0], '10%'];
                }
              },
              title: {
                text: '今日无功'
              },
              legend: {
                data: ['今日无功']
              },
              xAxis: {
                splitLine: {show: false},
                min: data[0][0],
                max: data[data.length - 1][0],
                type: 'time'
              },
              yAxis: {
                name: 'Kw'
              },
              series: [{
                name: '今日无功',
                type: 'line',
                symbol: 'none',
                areaStyle: {
                  normal: {
                  }
                },
                data: data
              }]
            };
            return option;
          }
          return optionFN;
        }
        // 功率因素
        case 'powerFactor':  {
         const optionFN = function(data){
            const option = {
              tooltip: {
                trigger: 'axis',
                position: function (pt) {
                    return [pt[0], '10%'];
                }
              },
              title: {
                text: '功率因素'
              },
              legend: {
                data: ['功率因素']
              },
              xAxis: {
                splitLine: {show: false},
                min: data[0][0],
                max: data[data.length - 1][0],
                type: 'time'
              },
              yAxis: {
              },
              series: [{
                name: '功率因素',
                type: 'line',
                symbol: 'none',
                areaStyle: {
                  normal: {
                  }
                },
                data: data
              }]
            };
            return option;
          }
          return optionFN;
        }
      }
    }
}
